#ifndef HOST_FRAMEWORK_H
#define HOST_FRAMEWORK_H

#define CL_TARGET_OPENCL_VERSION 120
#ifdef MAC
#include <OpenCL/cl.h>
#else
#include <CL/cl.h>
#endif

#define CL_HOST_NUM_PLATFORM_MAX 10
#define CL_HOST_NUM_DEVICE_MAX 10

typedef struct cl_host_device_s { cl_device_id id; } cl_host_device_t;

typedef struct cl_host_platform_s {
    cl_platform_id id;
    cl_host_device_t device;
    cl_context context;
} cl_host_platform_t;

typedef struct cl_host_ctx_s {
    cl_host_platform_t platform;
    cl_command_queue cmd_queue;
    cl_program program;
    cl_kernel kernel;
    void *so_handle;
    void *data;
} cl_host_ctx_t;

#endif
